<?php
// +----------------------------------------------------------------------
// | Admin 路由配置文件
// +----------------------------------------------------------------------
// | Author: albert3306 <albert3306@aliyun.com>
// +----------------------------------------------------------------------
use app\middleware\AuthAdminMiddleware;
use think\facade\Route;
use think\facade\View;

# 入口
Route::get('', function () {
    return redirect('/admin/login');
});

# 非授权路由
Route::group(function () {
    Route::get('/login', 'LoginController/index'); // 登录展示页
    Route::post('/login', 'LoginController/login'); // 登录

    # 错误页面
    Route::get('failed', 'SystemBasic/failed'); // 错误提醒页面
})->middleware(AuthAdminMiddleware::class, false);

# 授权路由
Route::group(function() {
    # 首页
    Route::get('index', 'IndexController/index'); // 首页
    Route::get('main', 'IndexController/main'); // 首页内容

    # 退出登录
    Route::get('logout', 'LoginController/logout'); // 退出

    # 系统管理 角色管理
    Route::get('system/roles', 'system.RoleController/index'); // 列表展示页
    Route::get('system/role/list', 'system.RoleController/lst'); // 列表数据
    Route::get('system/role/create', 'system.RoleController/create'); // 添加展示页
    Route::post('system/role/save', 'system.RoleController/save'); // 添加保存
    Route::get('system/role/edit/:id', 'system.RoleController/edit'); // 编辑
    Route::post('system/role/update/:id', 'system.RoleController/update'); // 编辑保存
    Route::get('system/role/del/:id', 'system.RoleController/delete'); // 删除

    # 系统管理 菜单管理
    Route::get('system/menus', 'system.MenuController/index'); // 列表展示页
    Route::get('system/menu/list', 'system.MenuController/lst'); // 列表数据
    Route::get('system/menu/create/[:cid]', 'system.MenuController/create'); // 添加展示页
    Route::post('system/menu/save', 'system.MenuController/save'); // 添加保存
    Route::get('system/menu/edit/:id', 'system.MenuController/edit'); // 编辑
    Route::post('system/menu/update/:id', 'system.MenuController/update'); // 编辑保存
    Route::get('system/menu/del/:id', 'system.MenuController/delete'); // 删除

    # 系统管理 管理员
    Route::get('system/users', 'system.AdminController/index'); // 列表展示页
    Route::get('system/user/list', 'system.AdminController/lst'); // 列表数据
    Route::get('system/user/create', 'system.AdminController/create'); // 添加展示页
    Route::post('system/user/save', 'system.AdminController/save'); // 添加保存
    Route::get('system/user/edit/:id', 'system.AdminController/edit'); // 编辑展示页
    Route::post('system/user/update/:id', 'system.AdminController/update'); // 编辑保存
    Route::get('system/user/del/:id', 'system.AdminController/delete'); // 删除
    Route::get('system/user/set_status/:status/:id', 'system.AdminController/setStatus'); // 设置状态
    Route::get('system/admin_info', 'system.AdminController/info'); // 个人资料
    Route::post('system/save_info', 'system.AdminController/saveInfo'); // 个人资料保存

    # 系统管理 系统日志
    Route::get('system/logs', 'system.LogController/index'); // 列表展示页

    # 系统管理 开发配置
    Route::get('system/config/tabs', 'system.ConfigTabController/index'); // 配置分类列表展示页
    Route::get('system/config/tab/create', 'system.ConfigTabController/create'); // 添加配置分类
    Route::post('system/config/tab/save', 'system.ConfigTabController/save'); // 添加配置分类保存
    Route::get('system/config/tab/edit/:id', 'system.ConfigTabController/edit'); // 编辑配置分类
    Route::post('system/config/tab/update/:id', 'system.ConfigTabController/update'); // 编辑配置分类保存
    Route::get('system/config/tab/del/:id', 'system.ConfigTabController/delete'); // 删除配置分类
    Route::get('system/config/tab/son/:id', 'system.ConfigTabController/sonConfig'); // 分类下的所有配置
    Route::get('system/config/create', 'system.ConfigController/create'); // 添加配置
    Route::post('system/config/save', 'system.ConfigController/save'); // 添加配置保存
    Route::get('system/config/edit/:id', 'system.ConfigController/edit'); // 编辑配置
    Route::post('system/config/update/:id', 'system.ConfigController/update'); // 编辑配置保存
    Route::get('system/config/del/:id', 'system.ConfigController/delete'); // 删除配置
    Route::get('system/config/index', 'system.ConfigController/index'); // 系统配置展示页
    Route::post('system/config/upload', 'system.ConfigController/file_upload'); // 文件上传
    Route::post('system/config/modify', 'system.ConfigController/modifyConfigValue'); // 修改配置值保存
    Route::get('system/groups', 'system.GroupController/index'); // 数据组展示页
    Route::get('system/group/create', 'system.GroupController/create'); // 添加数据组
    Route::post('system/group/save/[:id]', 'system.GroupController/save'); // 添加/编辑数据组保存
    Route::get('system/group/edit/:id', 'system.GroupController/edit'); // 编辑数据组
    Route::get('system/group/del/:id', 'system.GroupController/delete'); // 删除数据组
    Route::get('system/group/data_list', 'system.GroupDataController/index'); // 组数据列表
    Route::get('system/group/data_create/:gid', 'system.GroupDataController/create'); // 添加组数据
    Route::post('system/group/data_save/:gid', 'system.GroupDataController/save'); // 添加组数据保存
    Route::get('system/group/data_edit/:gid/:id', 'system.GroupDataController/edit'); // 编辑组数据
    Route::post('system/group/data_update/:id', 'system.GroupDataController/update'); // 编辑组数据保存
    Route::get('system/group/data_del/:id', 'system.GroupDataController/delete'); // 删除组数据
    Route::get('system/file/index', 'system.FileController/index'); // 项目文件首页

    # 工具
    Route::get('widget/icon', 'widget.WidgetsController/icon'); // 图标选择
    Route::get('widget/images', 'widget.ImagesController/index'); // 图片列表展示页
    Route::get('widget/image/list', 'widget.ImagesController/lst'); // 图片列表
    Route::get('widget/image/cate', 'widget.ImagesController/getImageCate'); // 获取图片分类
    Route::post('widget/image/upload', 'widget.ImagesController/upload'); // 上传图片
    Route::post('widget/image/del', 'widget.ImagesController/delete'); // 删除图片
    Route::get('widget/image/addCate', 'widget.ImagesController/addCate'); // 添加附件分类
    Route::post('widget/image/saveCate', 'widget.ImagesController/saveCate'); // 添加附件分类保存
    Route::get('widget/image/editCate/:id', 'widget.ImagesController/editCate'); // 编辑附件分类
    Route::post('widget/image/updateCate/:id', 'widget.ImagesController/updateCate'); // 编辑附件分类保存
    Route::get('widget/image/delCate/:id', 'widget.ImagesController/deleteCate'); // 删除附件分类
    Route::get('widget/image/mv', 'widget.ImagesController/mvCate'); // 移动图片分类
    Route::post('widget/image/saveMv', 'widget.ImagesController/saveMvCate'); // 移动图片分类保存

    # 系统管理 清除缓存
    Route::get('system/clear', 'system.ClearController/index'); // 入口展示页
    Route::get('system/clear_log', 'system.ClearController/clearLog'); // 清除日志
    Route::get('system/clear_cache', 'system.ClearController/clearCache'); // 清除缓存
    Route::any('system/clear_data/:type', 'system.ClearController/clearData'); // 清除数据
})->middleware(AuthAdminMiddleware::class, true);

Route::miss(function() {
    return View::fetch('public/404');
});
